#include<bits/stdc++.h>
using namespace std;
int n,m;
struct node{
    int x;//数值
    char z;//属于哪个序列
};
node a[600005];
bool cmp(node x,node y){//按数值由小到大排序
    return x.x<y.x;
}
int ans=1e9+1;//答案默认取最大值
int main() {
    cin>>n>>m;
    for(int i=1;i<=n;i++){//输入序列a
        cin>>a[i].x;
        a[i].z='a';
    }
    for(int i=1;i<=m;i++){//输入序列b
        cin>>a[i+n].x;
        a[i+n].z='b';
    }
    sort(a+1,a+n+m+1,cmp);//排序
    for(int i=1;i<n+m;i++){
        if (a[i].z!=a[i+1].z){//不属于同一序列
            ans=min(a[i+1].x-a[i].x,ans);//求最小值
        }
    }
    cout<<ans;
    return 0;
}
